Graphical user interfaces are typically based on bit-mapped graphic display technology that employs iconic (pictorial) representations, multi-font typographic-style text and other art work on a display screen of a computer system. These interfaces include a window environment that configures the screen to resemble a graphical display for a user to enter or view information. Specifically, an application program executing on the computer system presents the information to the user through a window by drawing images, graphics or text within the window region. The user, in turn, communicates with the application by "pointing" at objects in the window region with a cursor that is controlled by a hand-operated pointing device, such as a mouse.
Transient "pop-up", "pull-down" and "hierarchical" menus are examples of user interface elements that list command selections that are available to a user at all times, regardless of what else may be displayed on the screen. For example, there is no need to close a document and return to a main menu screen in order to select and issue commands from a menu. The menus can be activated and commands selected merely by pointing to them with the cursor-controlled mouse. That is, the commands may be issued by actuating the mouse to move the cursor onto or near the command selection and pressing and quickly releasing, i.e., "clicking", a button switch on the mouse.
These menus may be manifested in a variety of ways, including direct access menus which show all possible choices on a window, such as with a panel of buttons, and taxonomic menus which classify a domain hierarchy and allow the user to navigate through it. In many situations it is not necessary for a menu to remain permanently visible on the display screen and it can thus be "popped-up" on the screen when required. Typically, the button on the mouse is pressed to display the menu, which is painted on the screen near the cursor position. When the button is released, the menu disappears. Menu selection is achieved by pointing the cursor at the desired item with the mouse, which visually shades the selected item.
The pop up menu is a convenient way to keep frequently used commands and information accessible without occupying space on the window screen. Alternately, several different menus can be provided by buttons on a menu bar extending across the top of the window screen which, when selected by the mouse, display its menu; these are called pull-down menus. Typically, these menus remain drawn only while the mouse button is depressed.
A hierarchical menu is a menu that has a submenu attached to one or more of its menu items. These submenus provide additional choices to a user without consuming extra space in the menu bar. Typically, a menu item of a pull-down menu is the title of the attached submenu.
Graphical user interfaces are exemplified by the Finder application software system used in the Macintosh.RTM. series of computers manufactured by Apple Computer, Inc. of Cupertino, Calif. An aspect of that software system is described in U.S. Pat. 4,931,783, which is hereby incorporated by reference as through fully set forth herein. That patent describes how to manipulate and control the functions available from the Finder system though the use of pull-down menus. The details of how to implement such a system, as well as other Finder functions, are described in a volume of the publication "Inside Macintosh", published by Addison-Wesley, titled "Macintosh Toolbox Essentials", which volume is hereby incorporated by reference as though fully set forth herein.
Another example of a popular software system that provides a graphical user interface is the Windows.RTM. operating system, which is commercially available from Microsoft Corporation. The present invention is applicable to all such systems and is concerned with accessing user interface elements via a control device, such as a mouse, to perform operating system or program functions associated with information browsing.
Object-oriented programming is a paradigm for designing and implementing software programs. Fundamentally, object-oriented programming defines and packages objects, where an object consists of a data structure together with the operations available for that structure. Once such objects have been defined, it is possible to build a program as a simple sequence of processes to be performed on specified instances of these objects. An integral part of object definition is the ability to create new, more elaborate objects as enhancements of those previously defined.
Frequently, a user may want to view different types of information associated with these objects. For example, to examine the contents of a particular object such as a file folder, the user may "open" that file folder object. Yet, when "opening" a document, the user may actually desire to start the application that created the document prior to displaying the contents of that document in the context of that application.
Opening an object in the context of a prior art navigation or "browsing" tool typically means expanding the contents of that object to display a predetermined type of information about that object. To vary the type of information displayed about that object, however, a variety of tools must be utilized that provide sorting and selection of the types of information desired by the user. For example, after selecting an object, if the user desires to look at, e.g., the classes associated with the object, the user must retrieve a menu to select a class browser. Upon selecting a class of interest, if the user wants to examine the methods associated with that class, a method browser must be utilized. It is clear that such an approach is time consuming and inefficient.
Alternatively, another prior art browser enables a user to examine multiple views of objects in various areas of a window on a screen. However, the information displayed in each window area cannot be varied, thus rendering this tool static and not dynamically-configurable. That is, the tool may always allow a user to view the classes of an object in one window area, the methods associated with a selected class in another window area and the source code of a selected method in still yet another window area of the screen.
Accordingly, it is among the objects of the present invention to provide an interactive graphical user interface having the capability of varying the meaning of "opening" an object depending upon the type of information the user desires.
Another object of the present invention is to provide an interactive graphical user interface having the capability to flexibly display various types of information associated with an object.